{"componentChunkName":"component---src-templates-post-tsx","path":"/selection-sort.md/","result":{"data":{"markdownRemark":{"html":"<ul>\n<li>선택 정렬(Selection Sort)이란?</li>\n<li>선택 정렬 살펴보기</li>\n<li>선택 정렬 실행해보기 with 자바스크립트</li>\n</ul>\n<hr>\n<h2 id=\"선택-정렬selection-sort이란\" style=\"position:relative;\"><a href=\"#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%ACselection-sort%EC%9D%B4%EB%9E%80\" aria-label=\"선택 정렬selection sort이란 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>선택 정렬(Selection Sort)이란?</h2>\n<p>값이 가장 작은 숫자를 찾아 가장 왼쪽에 있는 데이터부터 순서대로 데이터를 교환하여 정렬하는 처리를 반복한다.</p>\n<h2 id=\"선택-정렬-살펴보기\" style=\"position:relative;\"><a href=\"#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0\" aria-label=\"선택 정렬 살펴보기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>선택 정렬 살펴보기</h2>\n<ul>\n<li>우선 정렬하고자 하는 데이터 안에서 값을 하나 골라 임시 최솟값으로 정한다.</li>\n<li>데이터 전부를 임시 최솟값과 비교한다.</li>\n<li>임시 최솟값보다 값이 작은 데이터가 있다면, 값이 가장 작은 데이터의 위치와 임시 최솟값의 위치를 바꾼다.</li>\n</ul>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 239px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/746fe904d1d7922f64b50f228df78031/4a279/selectionSortEx.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 214.18918918918922%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"실행 화면\"\n        title=\"실행 화면\"\n        src=\"/static/746fe904d1d7922f64b50f228df78031/4a279/selectionSortEx.png\"\n        srcset=\"/static/746fe904d1d7922f64b50f228df78031/12f09/selectionSortEx.png 148w,\n/static/746fe904d1d7922f64b50f228df78031/4a279/selectionSortEx.png 239w\"\n        sizes=\"(max-width: 239px) 100vw, 239px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h3 id=\"계산량-확인해보기\" style=\"position:relative;\"><a href=\"#%EA%B3%84%EC%82%B0%EB%9F%89-%ED%99%95%EC%9D%B8%ED%95%B4%EB%B3%B4%EA%B8%B0\" aria-label=\"계산량 확인해보기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>계산량 확인해보기</h3>\n<p>데이터의 총 개수를 n이라고 하면 선택 정렬의 비교 횟수는\n처음에 n-1 번, 그 다음은 n-2, n-3 번 ... 이다.</p>\n<p>반복 횟수는 (n-1) + (n-2) + (n-3) + ... + 1 이므로 (n²-n)/2이다.<br>\n즉 선택 정렬의 오더는 O(n²)이 된다.</p>\n<p>오더가 버블 정렬과 같지만,<br>\n버블 정렬은 데이터의 위치를 바꾸는 횟수가 선택 정렬보다 많기 때문에 선택 정렬이 더 빨리 끝난다. 메모리에 저장된 데이터를 비교하는 처리보다 위치를 바꾸는 처리가 시간이 많이 걸리기 때문이다.</p>\n<h2 id=\"선택-정렬-실행해보기-with-자바스크립트\" style=\"position:relative;\"><a href=\"#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC-%EC%8B%A4%ED%96%89%ED%95%B4%EB%B3%B4%EA%B8%B0-with-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8\" aria-label=\"선택 정렬 실행해보기 with 자바스크립트 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>선택 정렬 실행해보기 with 자바스크립트</h2>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- html --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>form</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>inputForm<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span>선택 정렬<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>input</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>str<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">size</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>50<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>text<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>input</span> <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>button<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">value</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>정렬하기<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">onClick</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>doSort()<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>form</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>form</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>outputForm<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span>정렬 결과<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>textarea</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>result<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">cols</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>50<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">rows</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>20<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>textarea</span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>form</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// javascript</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">doSort</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">let</span> inputForm <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span>forms<span class=\"token punctuation\">.</span>inputForm<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> outputFrom <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span>forms<span class=\"token punctuation\">.</span>outputForm<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> ary <span class=\"token operator\">=</span> inputForm<span class=\"token punctuation\">.</span>str<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">.</span><span class=\"token function\">split</span><span class=\"token punctuation\">(</span><span class=\"token string\">','</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  ary <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">e</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">Number</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token string\">' '</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> <span class=\"token string\">'---'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">selectionSort</span><span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> <span class=\"token string\">'---'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">printAry</span><span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> <span class=\"token string\">'done!'</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">function</span> <span class=\"token function\">selectionSort</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">ary</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">let</span> min<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">&lt;</span> ary<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      min <span class=\"token operator\">=</span> i<span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">let</span> j <span class=\"token operator\">=</span> i <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">&lt;</span> ary<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">[</span>min<span class=\"token punctuation\">]</span> <span class=\"token operator\">></span> ary<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n          min <span class=\"token operator\">=</span> j<span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        j <span class=\"token operator\">=</span> j <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">printAry</span><span class=\"token punctuation\">(</span>ary<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n      <span class=\"token keyword\">let</span> n <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n      ary<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> ary<span class=\"token punctuation\">[</span>min<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n      ary<span class=\"token punctuation\">[</span>min<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> n<span class=\"token punctuation\">;</span>\n      i <span class=\"token operator\">=</span> i <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">function</span> <span class=\"token function\">printAry</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">ary</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">=</span> outputForm<span class=\"token punctuation\">.</span>result<span class=\"token punctuation\">.</span>value <span class=\"token operator\">+</span> ary<span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token string\">' '</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h3 id=\"실행-화면\" style=\"position:relative;\"><a href=\"#%EC%8B%A4%ED%96%89-%ED%99%94%EB%A9%B4\" aria-label=\"실행 화면 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>실행 화면</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 485px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/b6c8a5669e0306ef60ff26ddbd07d5c0/44c61/selectionSort.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 82.43243243243244%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABLklEQVQ4y61Ua2+CQBDk//83+8GmMchLQN4gD3kTGJlLaSymlUQ3mdwmdzfs7M0ipZcLHMeFpqmoqhKMcRw3Y5omgSWXwjCEoeszoYbiekXXdWjbdhN4NggCfOx2UBQVeZ5BMk0T+889DocvpHmO/puQh//DcoZrURSzugrDMECKogiskmuWZej7/il4sa5reJ6HdQjJRJqm4ktbo2kaHI9HkS99FD30fR+UbVmW6Mf95l9YCBVF+UUoKiQJSyeSJPnZWNZ1PCWM4xiqquJ0OgnpLxOyb5TrOM57KuTLvrVCEhqGAdu23yeZr+y6rvDiy4T0Hzf0efxIupWQxpZl+ZGwLEthakpnvtWHHLvz+fxISGPzlRfCrcHxY8/XlQsf0tz3f5Bn4DxTMu+tK7wBGKzeZYN0sAIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"실행 화면\"\n        title=\"실행 화면\"\n        src=\"/static/b6c8a5669e0306ef60ff26ddbd07d5c0/44c61/selectionSort.png\"\n        srcset=\"/static/b6c8a5669e0306ef60ff26ddbd07d5c0/12f09/selectionSort.png 148w,\n/static/b6c8a5669e0306ef60ff26ddbd07d5c0/e4a3f/selectionSort.png 295w,\n/static/b6c8a5669e0306ef60ff26ddbd07d5c0/44c61/selectionSort.png 485w\"\n        sizes=\"(max-width: 485px) 100vw, 485px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<hr>\n<h4 id=\"reference\" style=\"position:relative;\"><a href=\"#reference\" aria-label=\"reference permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Reference</h4>\n<ul>\n<li><a href=\"https://www.gilbut.co.kr/book/view?bookcode=BN002328\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">모두의 알고리즘 with 자바스크립트</a></li>\n</ul>","excerpt":"선택 정렬(Selection Sort)이란? 선택 정렬 살펴보기 선택 정렬 실행해보기 with 자바스크립트 선택 정렬(Selection Sort)이란? 값이 가장 작은 숫자를 찾아 가장 왼쪽에 있는 데이터부터 순서대로 데이터를 교환하여 정렬하는 처리…","tableOfContents":"<ul>\n<li><a href=\"/selection-sort.md/#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%ACselection-sort%EC%9D%B4%EB%9E%80\">선택 정렬(Selection Sort)이란?</a></li>\n<li>\n<p><a href=\"/selection-sort.md/#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0\">선택 정렬 살펴보기</a></p>\n<ul>\n<li><a href=\"/selection-sort.md/#%EA%B3%84%EC%82%B0%EB%9F%89-%ED%99%95%EC%9D%B8%ED%95%B4%EB%B3%B4%EA%B8%B0\">계산량 확인해보기</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/selection-sort.md/#%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC-%EC%8B%A4%ED%96%89%ED%95%B4%EB%B3%B4%EA%B8%B0-with-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8\">선택 정렬 실행해보기 with 자바스크립트</a></p>\n<ul>\n<li><a href=\"/selection-sort.md/#%EC%8B%A4%ED%96%89-%ED%99%94%EB%A9%B4\">실행 화면</a></li>\n</ul>\n</li>\n</ul>","fields":{"slug":"/selection-sort.md/"},"frontmatter":{"title":"선택 정렬(Selection Sort)","date":"Jul 12, 2021","tags":["알고리즘","JavaScript"],"keywords":["argorithm","선택 정렬","selection","javascript"],"update":"Jan 01, 0001"}}},"pageContext":{"slug":"/selection-sort.md/","series":[],"lastmod":"2021-07-12"}},"staticQueryHashes":["2027115977","694178885"]}